/**
 * @描述: 表格组件
 * @创建人: 高明超
 * @创建时间: 2022-04-27
 * @最后编辑人: 高明超
 * @最后编辑时间: 2022-04-27
 */

import type { TableProps } from 'ant-design-vue'
import { ColumnGroupType, ColumnType } from 'ant-design-vue/es/table'
import { DefaultRecordType } from 'ant-design-vue/es/vc-table/interface'

// 继承antv的Table组件
export interface DataTableProps extends TableProps {
  // 异步加载数据的接口
  asyncApi?: (data: any) => Promise<any>
  // 表格数据, 如果tableData和asyncApi都存在，tableData优先
  tableData?: Array<any>
  // 是否需要序号，默认为 true
  showNo?: boolean
  // 表格之外的高度，用来维持表格的高度，默认为 100
  otherTabelHeight?: number
  // 表格的最大高度，当otherTabelHeight有值时，优先根据屏幕高度-otherTabelHeight来计算表格的高度
  maxheight?: number
  // 是否需要分页
  needPagination?: boolean
  // 是否初始化之后立刻请求接口， 默认true
  initRequest?: boolean
  // 是否可以拖动调整宽度
  isResizeWidth?: boolean
  // 表格名称
  name?: string
}

interface ColumnExtendType {
  showEllipsis?: boolean
  hidden?: boolean
  hideTitle?: boolean
}

export type ExtendedColumnsType<RecordType = DefaultRecordType> = (
  | ColumnGroupType<RecordType>
  | ColumnType<RecordType>
  | ColumnExtendType
)[]
